Desarrollo de software bajo metodologías ágiles (Agile Methods XP) en la práctica (página 2)
INTRODUCCIÓN
Los desarrollos de software desde la
década de los 70's y con el boom de la "crisis del
software" han venido mostrando que la programación en proyectos tiende
a presentar problemáticas o falencias que se pueden
presentar por el equipo de desarrollo,
por mala planeación, requisitos mal comprendidos
entre otros.
Los proyectos software buscan en las empresas
facilitar, agilizar, mejorar procesos y
tender hacia una competitividad
alta con el uso de dichas herramientas
computacionales.
En la práctica se desarrolló el proyecto
"ESTÁNDARES DE CALIDAD EN
METODOLOGÍAS ÁGILES PARA EL DESARROLLO DE SOFTWARE
– APLICADOS COMO EJEMPLO EN EL DESARROLLO DEL MÓDULO DE
TESORERÍA PARA LA INDUSTRIA
LICORERA DEL CAUCA", en el período de septiembre de
2006 a agosto de 2007, aplicando una de las más populares
y completas metodologías como lo es Xp (Xtreme
Programing). En dicho proyecto se basa
esta monografía.
APLICACIÓN DE
LOS PRINCIPIOS Y
VALORES
ÁGILES
DESCRIPCIÓN
Pura lógica,
es la palabra con que describen la Programación Extrema
algunos conocedores y desarrolladores, las prácticas de
este método
están basadas en la simplicidad, la
comunicación, la valentía y el reciclado
continuo de código,
Xp es la integración de las prácticas de
métodos
tradicionales resumiendo o utilizando lo más
práctico y eficaz, sin olvidar la añadidura de
características importantes mencionadas en el manifesto
ágil [1].
Es un cambio
revolucionario llevar las prácticas al extremo, teniendo
como fin la satisfacción del cliente, Software
de calidad, integración del cliente en el equipo de
trabajo
(cliente in situ), adaptación a los cambios ya sean de
tecnología
o de metáforas dentro del negocio.
Las metodologías ágiles reducen el coste
de desarrollo y mantenimiento
de los proyectos en cuestión del tiempo como se
observa en la figura 1.
Figura 1. "Gráfica coste de
desarrollo VS tiempo"
COMUNICACIÓN, SENCILLEZ,
RETROALIMENTACIÓN Y VALENTÍA
Xp se caracteriza por retomar las prácticas de
uso tradicional y llevarlas al extremo como se comentaba. En
busca de mejoras en el desarrollo de software y con bases
fundamentadas de ingeniería de
software, varios pensadores e importantes autores publican la
esencia del desarrollo ágil en el documento y sitio
llamado manifiesto "Agile Manifesto"[1] antes citado, en el que
se nombran los principios, prácticas y valores de los
métodos ágiles de desarrollo de
software.
COMUNICACIÓN
Al desarrollar sistemas software
con una u otra metodología, ya sea ágil (Ams) o
tradicional se determina que la comunicación es pieza importante para un
buen desarrollo de los proyectos, intercambio de ideas entre
jefes, personal que
manejará el sistema, terceras
personas que aportan, equipo de desarrollo y equipo de
trabajo.
La mala comunicación se puede representar en
ocasiones con el cliente (requisitos mal comprendidos), procesos
mal definidos o inexactos. También cuando el equipo de
trabajo, "desarrolladores", comete errores en el manejo de la
metáfora, en el manejo a nivel código cuando no se
comentan cambios entre los desarrolladores, partes inseguras o no
se enseñan u orientan apuntes importantes sobre
programación.
En la practica se observa que la comunicación
basada en metodologías ágiles potencia el
desarrollo de los proyectos software, gracias al manejo de
cliente en sitio de trabajo se genera una retroalimentación apoyada con reuniones
diarias (daily stand up meeting), propuestas en
diez minutos, en las que originalmente se manejan tres
preguntas:
- Qué se realizó el día
anterior. - Qué inconvenientes
presentó. - Qué actividades se realizarán el
día de hoy.
En la realidad realizar reuniones diarias de pie resulta
muy complicado y en ocasiones imposible, debido a las
múltiples ocupaciones, horarios, reuniones extraoficiales
y paros, entre muchos más, del cliente o equipo de
trabajo, dependiendo la disponibilidad de desarrolladores o
razón social de la empresa. Y
cabe resaltar que al estar diariamente con el equipo cliente se
aprende mucho sobre el manejo de la empresa,
procesos, temas relacionados y se realizan conexiones o
relaciones laborales importantes para ambas partes.
SENCILLEZ
"Simple pero no demasiado simple", nombra el autor Kent
Beck [3] patriarca de la metodología ágil Xp
refiriéndose a la sencillez en el diseño
y desarrollo de software con dicho método.
Cuando se desarrolla con interfaces y lógica
simple, los sistemas mejoran la portabilidad, manejo,
mantenimiento, capacitación y rapidez, siendo un punto a
favor para la adquisición o desarrollo de dicho
sistema.
Cuando un programa tiene
mucha sobrecarga o abuso de detalles se puede observar que
éstos generan retrasos en máquina, también
no son usados del todo o interfieren en el manejo del programa,
es recomendado ubicar en los proyectos la esencia y solo lo
necesario para un óptimo manejo.
En el sistema desarrollado como ejemplo para este
documento se aplican estas pautas en todas las fases de
desarrollo, desde la firma del contrato hasta
reuniones, sistema y socialización del proyecto, además
añadiendo un recurso importante como lo es la
reutilización de código en la parte de
diseño y programación.
RETROALIMENTACIÓN
Éste es un punto importante para resaltar,
aumenta mucho la socialización y comunicación entre
los distintos equipos relacionados en el proyecto, es recomendado
manejar una retroalimentación constante y oportuna en
todas las fases del proyecto de forma rápida y
clara.
El cliente es el usuario final encargado de administrar,
manejar y obtener el máximo provecho del sistema
desarrollado, por lo tanto es recomendable que los aportes de
este usuario tengan eco y sean primordiales en las faces:
Pruebas,
Entregas frecuentes, versionado e integración para obtener
como resultado un óptimo y aprobado por el cliente
producto
final.
VALENTÍA
Ser valientes en el desarrollo de proyectos software es
asumir riesgos,
enfrentarse a ellos y continuar al límite junto a esta
actitud hasta
finiquitar un sistema, un valor
importante y arriesgado que gracias a la pertenencia que se
maneja en Xp permite la toma de
decisiones importantes para el buen desarrollo de los
proyectos software.
En la práctica se aplicaron decisiones de
valentía al cambiar la base de datos
estando ésta en un 75% conformada y la interfaz de usuario
para que su manejo fuera más ágil, obteniendo
excelentes resultados.
EQUIPO DE
DESARROLLO ÁGIL
Según la propuesta expuesta en el sitio oficial
del proyecto tesis [2]
(Http://groups.msn.com/tesismetologiasagiles), se
trata el tema de "FORMACIÓN DEL EQUIPO DE TRABAJO " en el
que se nombra:
Los grupos de trabajo
de desarrolladores que se conforman solos, organizan
autónomamente o autoconforman, funcionan en el desarrollo
de proyectos con mejores resultados y obtienen mejores logros, ya
que se conocen, forman un ambiente o
entorno acorde para trabajo e interacciones con el cliente
buenas. Los equipos que son conformados sistemáticamente
enfrentan problemas
desde el inicio, desarrollo y fin de un proyecto, ya que
desconocen el manejo de trabajo en el grupo nuevo
mientras se acoplan al equipo.
En la Programación Extrema se propone que
además de las reuniones diarias los desarrollos de
código sean efectuados por parejas de programadores en
lapsos de tiempo de 40 horas semanales y entre estas
prácticas un equipo no conocido podría no cumplir
la ley de sinergia en la
que todos los componentes del sistema tienen o trabajan con un
mismo fin. Para terminar esta nota o paréntesis se puede
nombrar que un equipo conocido trabaja con más
ánimo, confianza y de forma agradable para el desarrollo
de distintos proyectos.
CONCLUSIONES
Para obtener un software de calidad aplicando las
teorías
ágiles de desarrollo es importante seguir muy
ceñidamente los valores y
principios ágiles para llegar al objetivo
deseado.
Las metodologías ágiles reducen el coste
de desarrollo y mantenimiento del software
ENLACES DE
INTERÉS
Sitio insignia del proyecto de tesis
"ESTÁNDARES DE CALIDAD EN METODOLOGÍAS
ÁGILES PARA EL DESARROLLO DE SOFTWARE – APLICADOS COMO
EJEMPLO EN EL DESARROLLO DEL MÓDULO DE TESORERÍA
PARA LA INDUSTRIA LICORERA DEL CAUCA", conteniendo, foros,
imágenes, cronograma, equipo de trabajo,
opiniones, documentación, enlaces, área de
trabajo y todo lo relacionado con dicho proyecto.
[2] HTTP://groups.msm.com/tesismetodologiasagiles
[1] Agile Alliance, Agile Manifesto,
2001.
Http://www.agilemanifesto.org.
Http://www.xprogramming.com
Patricio Letelier
Torres, Departamento de
Sistemas Informáticos y Computación (DSIC)
Universidad
Politécnica de Valencia
(UPV),2004-2007.
www.dsic.upv.es/~letelier,
letelier[arroba]dsic.upv.es.
BIBLIOGRAFÍA
Http://www.controlchaos.com
Http://www.extremeprogramming.org
Http://www.xprogramming.com
Http://www.crystalmethodologies.org
Http://www.dsdm.org
Http://www.adaptivesd.com
Http://www.featuredrivendevelopment.com
Adrian Anaya Villegas
Edison Arley Plaza Marín
Ingenieros de Sistemas, Fundación Universitaria
de Popayán.
Equipo de trabajo XdevelopmentIlc.
Popayán – Cauca – Colombia.
Mayo de 2007.
Página anterior | Volver al principio del trabajo | Página siguiente |